<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 1. 在函数中直接使用
      function get(content) {
        console.log(content);
      }
      get('你好');
      // 相当于
      get.call(window, '你好');

      // 2.函数作为对象的方法被调用 (谁调用我，我就指向谁)
      var person = {
        name: '张三',
        run: function (time) {
          console.log(`${this.name} 在跑步 最多 ${time}min就不行了`);
        },
      };
      person.run(30);
      // 相当于
      person.run.call(person, 30);

      // 练习一
      let name = 222;
      let a = {
        name: 111,
        say: function () {
          console.log(this.name);
        },
      };
      var fun = a.say;
      fun(); //fun.call(window) 222
      a.say(); // a.say.call(a) 111
      var b = {
        name: 333,
        say: function (fun) {
          fun(); // fun.call(window)  222
        },
      };
      b.say(a.say);
      b.say = a.say;
      b.say(); // 相当于 b.say.call(b)  333
    </script>
  </body>
</html>
